package com.mapper;

import com.dto.MaterialInputSearchForm;
import com.entity.MaterialInput;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *  物料输入Mapper 接口
 * </p>
 *
 * @author aiou
 * @since 2025-06-08
 */
@Mapper
public interface MaterialInputMapper{

    /**
     * 插入数据
     * @param materialInput
     */
    Boolean insert(MaterialInput materialInput);

    /**
     * 获取列表，带搜索条件
     * @return
     */
    List<MaterialInput> list(MaterialInputSearchForm form);

    /**
     * 获取列表，不带搜索条件
     */
    List<MaterialInput> selectAll();

    /**
     * 根据序列号查询
     * @param batchNo
     * @return
     */
    MaterialInput selectByBatchNo(String batchNo);

    /**
     * 序列号相同，更新数据
     * @param materialInput
     * @return
     */
    boolean updateByBatchNo(MaterialInput materialInput);

    /**
     * 批量审核
     * @param idList
     * @param status
     * @return
     */
    boolean verify(List<Integer> idList, Integer status);

    /**
     * 根据物料清单Id查询
     * @param id
     * @return
     */
    MaterialInput selectById(String id);

    /**
     * 根据Id更新物料清单数据
     * @param materialInput
     * @return
     */
    int updateById(@Param("materialInput") MaterialInput materialInput);

    /**
     * 根据Id删除物料清单数据
     * @param idList
     * @return
     */
    boolean deleteById(List<Integer> idList);
}
